package org.proxycine.gestsalles.model.entities;

import java.io.Serializable;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Film implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 4226830011625621134L;

	private int id;
	private String titre;
	private String synopsis;
	private int duree;
	private GenreFilm genre;
	private Date dateSortie;
	private String nationalite;
	private String realisateur;
	private String acteurs;
	private double rating;
	
	public Film(String titre, String synopsis, int duree, GenreFilm genre,
			Date dateSortie, String nationalite, String realisateur,
			String acteurs, double rating) {
		super();
		this.titre = titre;
		this.synopsis = synopsis;
		this.duree = duree;
		this.genre = genre;
		this.dateSortie = dateSortie;
		this.nationalite = nationalite;
		this.realisateur = realisateur;
		this.acteurs = acteurs;
		this.rating = rating;
	}
	
	public Film(int id, String titre, String synopsis, int duree, GenreFilm genre,
			Date dateSortie, String nationalite, String realisateur,
			String acteurs, double rating) {
		super();
		this.id = id;
		this.titre = titre;
		this.synopsis = synopsis;
		this.duree = duree;
		this.genre = genre;
		this.dateSortie = dateSortie;
		this.nationalite = nationalite;
		this.realisateur = realisateur;
		this.acteurs = acteurs;
		this.rating = rating;
	}

	public String getTitre() {
		return titre;
	}

	public void setTitre(String titre) {
		this.titre = titre;
	}

	public String getSynopsis() {
		return synopsis;
	}

	public void setSynopsis(String synopsis) {
		this.synopsis = synopsis;
	}

	public int getDuree() {
		return duree;
	}

	public void setDuree(int duree) {
		this.duree = duree;
	}

	public GenreFilm getGenre() {
		return genre;
	}

	public void setGenre(GenreFilm genre) {
		this.genre = genre;
	}

	public String getDateSortieString() {
		String date = "";
		DateFormat formatter;
		formatter = new SimpleDateFormat("yyyy/MM/dd");
		date = formatter.format(this.dateSortie);
		
		return date;
	}
	
	public Date getDateSortie() {
		return dateSortie;
	}

	/*public void setDateSortie(String dateSortie) {
		DateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");	
		Date tmpDate = null;
		
		try {
			tmpDate = formatter.parse(dateSortie);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		if (tmpDate != null)
			this.dateSortie = tmpDate;
	}*/
	
	public void setDateSortie(Date dateSortie) {
		this.dateSortie = dateSortie;
	}

	public String getNationalite() {
		return nationalite;
	}

	public void setNationalite(String nationalite) {
		this.nationalite = nationalite;
	}

	public String getRealisateur() {
		return realisateur;
	}

	public void setRealisateur(String realisateur) {
		this.realisateur = realisateur;
	}

	public String getActeurs() {
		return acteurs;
	}

	public void setActeurs(String acteurs) {
		this.acteurs = acteurs;
	}

	public double getRating() {
		return rating;
	}

	public void setRating(double rating) {
		if (rating >= 10.0)
			this.rating = 9.9;
		else if (rating < 0.0)
			this.rating = 0.0;
		else
			this.rating = rating;
	}
	
	public int getId() {
		return id;
	}
	
	public void setId(int id) {
		this.id = id;
	}
	
    public int getHauteurDuree() {
		int hauteur = this.duree / 2;
    	
    	return hauteur;
    }
}
